/*!
 * GwAdmin Development v1.2.0
 * (c) 2018-2019 Gwzh
 * build in: 2019-4-18 16:17:41
 */

'use strict';

/*!
 validate.js
 */

// eslint-disable-next-line no-control-regex
var getRealLength = function getRealLength(str) {
  return str.replace(/[^\x00-\xff]/g, '__').length;
};

layui.define(function(e) {
  e('validate', {
    required: [/[\S]+/, '必填项不能为空'],
    phone   : [/^1\d{10}$/, '请输入正确的手机号'],
    email   : [/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/, '邮箱格式不正确'],
    url     : [/(^#)|(^http(s*):\/\/[^\s]+\.[^\s]+)/, '链接格式不正确'],
    date    : [/^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/, '日期格式不正确'],
    identity: [/(^\d{15}$)|(^\d{17}(X|\d)$)/, '请输入正确的身份证号，末尾如是x请输入大写X'],
    percent : [/(^([1-9]{1}[0-9]{0,1}|0|100)(.\d{1,2}){0,1}%$)/, '请输入百分比数'],
    decimal1: [/(^[0-9]+.?[0-9]{0,1}$)/, '请输入正确的数字,保留1位小数,##.#格式'],
    decimal2: [/(^[0-9]+.?[0-9]{0,2}$)/, '请输入正确的数字,保留2位小数,##.##格式'],
    number  : function number(value) {
      if (!value || isNaN(value)) return '只能填写数字';
    },
    maxLen: function maxLen(value, length) {
      if (value) {
        value += '';
        // var len = value.length
        var len = getRealLength(value); // 验证字节长度,添加 一个中文字符长度为2 提示，modify by xujiaming 2018/7/12
        if (len > +length) {
          return '输入值字符长度是: ' + len + ', 一个中文字符长度为2,超过规定的最大长度是: ' + length;
        }
      }
    },
    minLen: function minLen(value, length) {
      if (value) {
        value += '';
        // var len = value.length
        var len = getRealLength(value); // 验证字节长度,添加 一个中文字符长度为2 提示，modify by xujiaming 2018/7/12
        if (len < +length) {
          return '输入值字符长度是: ' + len + ', 一个中文字符长度为2,低于规定的最小长度是: ' + length;
        }
      }
    },
    eqLen: function eqLen(value, length) {
      if (value) {
        value += '';
        // var len = value.length
        var len = getRealLength(value); // 验证字节长度,添加 一个中文字符长度为2 提示，modify by xujiaming 2018/7/12
        if (value.length !== +length) {
          return '输入值字符长度是: ' + len + ', 一个中文字符长度为2,规定的指定长度是: ' + length;
        }
      }
    },
    maxVal: function maxVal(value, _max) {
      if (value) {
        value = +value;
        _max = +_max;

        if (value > _max) {
          return '输入值大于最大规定值: ' + _max;
        }
      }
    },
    minVal: function minVal(value, _min) {
      if (value) {
        value = +value;
        _min = +_min;

        if (value < _min) {
          return '输入值小于最小规定值: ' + _min;
        }
      }
    },
    integer: function integer(value) {
      if (!value || isNaN(value)) {
        return '只能填写整数';
      } else {
        value = +value;
        if (!/^-?\d+$/.test(value)) {
          return '只能填写整数';
        }
      }
    },
    Chinese: function Chinese(value) {
      if (!new RegExp('^[\u2E80-\u9FFF]+$').test(value)) {
        return '只能输入中文';
      }
    },
    inspectyearVerify: function inspectyearVerify(value) {
      var datetime = new Date();
      var nowYear = datetime.getFullYear();
      var beforeYear = nowYear - 5;
      var afterYear = nowYear + 1;
      if (!(value >= beforeYear && value <= afterYear)) {
        return '审验年度不合法';
      }
    }
  });
});
